{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 第一阶段_第三周作业"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第六步. 重新调整弱学习器数目"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "前面1-5步，得出最佳结果：-0.5805192306115483， 使用以下参数：\n",
    "\n",
    "n_estimators=261, max_depth=5, min_child_weight=1, colsample_bytree=0.9, subsample=0.7, reg_alpha=2， reg_lambda=1\n",
    "\n",
    "接下来这一步，再次重新调整弱学习器的数目"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from xgboost import XGBClassifier\n",
    "import xgboost as xgb\n",
    "\n",
    "import pandas as pd \n",
    "import numpy as np\n",
    "\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "\n",
    "from sklearn.metrics import log_loss\n",
    "\n",
    "from matplotlib import pyplot\n",
    "import seaborn as sns\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>bathrooms</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>price</th>\n",
       "      <th>price_bathrooms</th>\n",
       "      <th>price_bedrooms</th>\n",
       "      <th>room_diff</th>\n",
       "      <th>room_num</th>\n",
       "      <th>Year</th>\n",
       "      <th>Month</th>\n",
       "      <th>Day</th>\n",
       "      <th>...</th>\n",
       "      <th>walk</th>\n",
       "      <th>walls</th>\n",
       "      <th>war</th>\n",
       "      <th>washer</th>\n",
       "      <th>water</th>\n",
       "      <th>wheelchair</th>\n",
       "      <th>wifi</th>\n",
       "      <th>windows</th>\n",
       "      <th>work</th>\n",
       "      <th>interest_level</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.5</td>\n",
       "      <td>3</td>\n",
       "      <td>3000</td>\n",
       "      <td>1200.0</td>\n",
       "      <td>750.000000</td>\n",
       "      <td>-1.5</td>\n",
       "      <td>4.5</td>\n",
       "      <td>2016</td>\n",
       "      <td>6</td>\n",
       "      <td>24</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>5465</td>\n",
       "      <td>2732.5</td>\n",
       "      <td>1821.666667</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>6</td>\n",
       "      <td>12</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>2850</td>\n",
       "      <td>1425.0</td>\n",
       "      <td>1425.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>4</td>\n",
       "      <td>17</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>3275</td>\n",
       "      <td>1637.5</td>\n",
       "      <td>1637.500000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>4</td>\n",
       "      <td>18</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.0</td>\n",
       "      <td>4</td>\n",
       "      <td>3350</td>\n",
       "      <td>1675.0</td>\n",
       "      <td>670.000000</td>\n",
       "      <td>-3.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>4</td>\n",
       "      <td>28</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 228 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   bathrooms  bedrooms  price  price_bathrooms  price_bedrooms  room_diff  \\\n",
       "0        1.5         3   3000           1200.0      750.000000       -1.5   \n",
       "1        1.0         2   5465           2732.5     1821.666667       -1.0   \n",
       "2        1.0         1   2850           1425.0     1425.000000        0.0   \n",
       "3        1.0         1   3275           1637.5     1637.500000        0.0   \n",
       "4        1.0         4   3350           1675.0      670.000000       -3.0   \n",
       "\n",
       "   room_num  Year  Month  Day       ...        walk  walls  war  washer  \\\n",
       "0       4.5  2016      6   24       ...           0      0    0       0   \n",
       "1       3.0  2016      6   12       ...           0      0    0       0   \n",
       "2       2.0  2016      4   17       ...           0      0    0       0   \n",
       "3       2.0  2016      4   18       ...           0      0    0       0   \n",
       "4       5.0  2016      4   28       ...           0      0    1       0   \n",
       "\n",
       "   water  wheelchair  wifi  windows  work  interest_level  \n",
       "0      0           0     0        0     0               1  \n",
       "1      0           0     0        0     0               2  \n",
       "2      0           0     0        0     0               0  \n",
       "3      0           0     0        0     0               2  \n",
       "4      0           0     0        0     0               2  \n",
       "\n",
       "[5 rows x 228 columns]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dpath = './data/'\n",
    "train = pd.read_csv(dpath +\"RentListingInquries_FE_train.csv\")\n",
    "train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# prepare cross validation\n",
    "kfold = StratifiedKFold(n_splits=5, shuffle=True, random_state=3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# drop ids and get labels\n",
    "y_train = train['interest_level']\n",
    "X_train = np.array(train.drop(\"interest_level\", axis=1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "#直接调用xgboost内嵌的交叉验证（cv），可对连续的n_estimators参数进行快速交叉验证\n",
    "#而GridSearchCV只能对有限个参数进行交叉验证\n",
    "def modelfit(alg, X_train, y_train, cv_folds=None, early_stopping_rounds=10):\n",
    "    xgb_param = alg.get_xgb_params()\n",
    "    xgb_param['num_class'] = 9\n",
    "    \n",
    "    #直接调用xgboost，而非sklarn的wrapper类\n",
    "    xgtrain = xgb.DMatrix(X_train, label = y_train)\n",
    "        \n",
    "    cvresult = xgb.cv(xgb_param, xgtrain, num_boost_round=alg.get_params()['n_estimators'], folds =cv_folds,\n",
    "             metrics='mlogloss', early_stopping_rounds=early_stopping_rounds)\n",
    "  \n",
    "    cvresult.to_csv('6_nestimators.csv', index_label = 'n_estimators')\n",
    "    \n",
    "    #最佳参数n_estimators\n",
    "    n_estimators = cvresult.shape[0]\n",
    "    \n",
    "    # 采用交叉验证得到的最佳参数n_estimators，训练模型\n",
    "    alg.set_params(n_estimators = n_estimators)\n",
    "    alg.fit(X_train, y_train, eval_metric='mlogloss')\n",
    "        \n",
    "    #Predict training set:\n",
    "    #train_predprob = alg.predict_proba(X_train)\n",
    "    #logloss = log_loss(y_train, train_predprob)\n",
    "\n",
    "   #Print model report:\n",
    "   # print (\"logloss of train :\" )\n",
    "   # print logloss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "#params = {\"objective\": \"multi:softprob\", \"eval_metric\":\"mlogloss\", \"num_class\": 9}\n",
    "xgb6 = XGBClassifier(\n",
    "        learning_rate =0.1,\n",
    "        n_estimators=1000,  #数值大没关系，cv会自动返回合适的n_estimators\n",
    "        max_depth=5,\n",
    "        min_child_weight=1,\n",
    "        gamma=0,\n",
    "        subsample=0.7,\n",
    "        colsample_bytree=0.9,\n",
    "        colsample_bylevel=0.7,\n",
    "        reg_alpha=2,\n",
    "        reg_lambda=1,\n",
    "        objective= 'multi:softprob',\n",
    "        nthread=3,\n",
    "        seed=3)\n",
    "\n",
    "modelfit(xgb6, X_train, y_train, cv_folds = kfold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\ProgramData\\Anaconda2\\lib\\site-packages\\ipykernel_launcher.py:1: FutureWarning: from_csv is deprecated. Please use read_csv(...) instead. Note that some of the default arguments are different, so please refer to the documentation for from_csv when changing your function calls\n",
      "  \"\"\"Entry point for launching an IPython kernel.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(296, 4)\n",
      "296\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x14436ac8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cvresult = pd.DataFrame.from_csv('6_nestimators.csv')\n",
    "        \n",
    "# plot\n",
    "test_means = cvresult['test-mlogloss-mean']\n",
    "test_stds = cvresult['test-mlogloss-std'] \n",
    "        \n",
    "train_means = cvresult['train-mlogloss-mean']\n",
    "train_stds = cvresult['train-mlogloss-std'] \n",
    "\n",
    "print cvresult.shape\n",
    "print cvresult.shape[0]\n",
    "x_axis = range(0, cvresult.shape[0])\n",
    "        \n",
    "pyplot.errorbar(x_axis, test_means, yerr=test_stds ,label='Test')\n",
    "pyplot.errorbar(x_axis, train_means, yerr=train_stds ,label='Train')\n",
    "pyplot.title(\"XGBoost n_estimators vs Log Loss\")\n",
    "pyplot.xlabel( 'n_estimators' )\n",
    "pyplot.ylabel( 'Log Loss' )\n",
    "pyplot.savefig( 'n_estimators4_1.png' )\n",
    "\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\ProgramData\\Anaconda2\\lib\\site-packages\\ipykernel_launcher.py:1: FutureWarning: from_csv is deprecated. Please use read_csv(...) instead. Note that some of the default arguments are different, so please refer to the documentation for from_csv when changing your function calls\n",
      "  \"\"\"Entry point for launching an IPython kernel.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x14436860>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cvresult = pd.DataFrame.from_csv('1_nestimators.csv')\n",
    "\n",
    "cvresult = cvresult.iloc[100:]\n",
    "# plot\n",
    "test_means = cvresult['test-mlogloss-mean']\n",
    "test_stds = cvresult['test-mlogloss-std'] \n",
    "        \n",
    "train_means = cvresult['train-mlogloss-mean']\n",
    "train_stds = cvresult['train-mlogloss-std'] \n",
    "\n",
    "x_axis = range(100,cvresult.shape[0]+100)\n",
    "        \n",
    "fig = pyplot.figure(figsize=(10, 10), dpi=100)\n",
    "pyplot.errorbar(x_axis, test_means, yerr=test_stds ,label='Test')\n",
    "pyplot.errorbar(x_axis, train_means, yerr=train_stds ,label='Train')\n",
    "pyplot.title(\"XGBoost n_estimators vs Log Loss\")\n",
    "pyplot.xlabel( 'n_estimators' )\n",
    "pyplot.ylabel( 'Log Loss' )\n",
    "pyplot.savefig( 'n_estimators_detail.png' )\n",
    "\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
